package operador.topologia;

import java.util.List;

import base.Particula;
import base.Topologia;

public class Local implements Topologia {
	
	@Override
	public Particula getMelhor(List<Particula> enxame, Integer posicao) {
		Particula part1;
		Particula part2;
		
		//A posicao 0, pode se basear com ultima posicao e posicao 1 
		if(posicao == 0){
			part1 = enxame.get(enxame.size()-1);
			part2 = enxame.get(posicao+1);
		//A ultima posicao pode se basear com a penultima e a primeira
		}else if(posicao == enxame.size()-1){ 
			part1 = enxame.get(enxame.size()-2);
			part2 = enxame.get(0);
		//Uma posicao qualquer pode se baser com a anterior e com a proxima
		}else{ 
			part1 = enxame.get(posicao-1);
			part2 = enxame.get(posicao+1);
		}
		
		if(part1.getFitness() < part2.getFitness())
			return part1;
		else
			return part2;
	}

}
